Batch vs Stream — подходы к обработке данных по времени поступления и требованиям к задержкам.
Batch
-
Обработка больших объёмов пакетами по расписанию.
-
Примеры: ETL в DWH, отчёты за день/час.
-
Плюсы: простота, реплей, детерминированность.
-
Минусы: задержка, «старые» данные.
Stream
-
Обработка событий непрерывно/с малыми окнами.
-
Примеры: антифрод, realtime уведомления, метрики.
-
Плюсы: низкая задержка, реактивность.
-
Минусы: управление состоянием/порядком, сложность тестов и деплоев.
Ключевые понятия
-
Event time vs processing time; окна (tumbling/sliding/session); watermarks.
-
Гарантии доставки и состояния: at-least-once, effectively-once, дедупликация.
-
Источники/синк: лог событий (Kafka), CDC, очереди, базы, DWH.
Выбор
-
Если достаточно T+часы — batch.
-
Если нужен отклик < секунд/минут — stream или гибрид (lambda/kappa).